home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / bytesc88.arc / XTOI.C < prev   
Text File  |  1987-10-04  |  768b  |  26 lines

  1. #include stdio.h
  2. /*
  3. ** xtoi -- convert hex string to integer nbr
  4. **         returns field size, else ERR on error
  5. */
  6. xtoi(hexstr, nbr) char *hexstr; int *nbr; {
  7.   int d, b;  char *cp;
  8.   d = *nbr = 0; cp = hexstr;
  9.   while(*cp == '0') ++cp;
  10.   while(1) {
  11.     switch(*cp) {
  12.       case '0': case '1': case '2':
  13.       case '3': case '4': case '5':
  14.       case '6': case '7': case '8':
  15.       case '9':                     b=48; break;
  16.       case 'A': case 'B': case 'C':
  17.       case 'D': case 'E': case 'F': b=55; break;
  18.       case 'a': case 'b': case 'c':
  19.       case 'd': case 'e': case 'f': b=87; break;
  20.        default: return (cp - hexstr);
  21.       }
  22.     if(d < 4) ++d; else return (ERR);
  23.     *nbr = (*nbr << 4) + (*cp++ - b);
  24.     }
  25.   }
  26.